# ZZQ
# 生成时间：2021-07-23  9:51

print('1------------列表的第一种创建方式')
'''
lst=['hello','world',98]  # 列表存储三个元素
print(id(lst))
print(type(lst))
print(lst)
'''
print('\n-----------列表创建的第二方式')
'''
lst2=lst(['hello','world',98])
print(lst2)
'''
print('\n2-----------index()索引列表')
'''
lst=['hello','world',98,'hello','world',234]
print(lst.index('hello'))  # 返回第一个元素索引
print(lst.index('hello',1,4))  # 指定范围内查找不包括4
print(lst[2])          # 正向索引   [0,N-1]
print(lst[-3])         # 逆向索引   [-N,-1]
# print(lst[10])    IndexError: list index out of range
'''
print('\n3---------------列表的切片操作')
'''
lst=[10,20,30,40,50,60,70,80]
print(lst[::])      # start默认为0：stop默认为N-1：step默认为1
print(lst[0:7:1])
print(lst[0:7:2])
print(lst[-1::-1])
print(lst[-1:-5:-1])
print(lst[-1::-2])
'''
print('\n4---------------判断指定元素是否在列表中存在')
'''
lst=[10,20,30,40]
print(10 in lst)
print(50 in lst)
print(20 not in lst)
for i in lst:           # for 注意冒号  遍历列表
    print(i)
'''
print('\n5--------------增加列表元素')
print('------------append 末尾添加一个')
'''
lst=[10,20,30]
lst.append(40)       # 在列表末尾添加一个元素 不改变列表空间地址
print(lst)
lst2=['hello','world']
lst.append(lst2)    # 将lst2作为一个元素添加到lst的末尾
print(lst)
'''
print('------------extend 末尾添加至少一个')
'''
lst.extend(lst2)    # 向列表末尾添加至少一个元素
print(lst)
'''
print('------------insert 任意位置添加一个')
'''
lst.insert(1,99)    # 在列表的指定位置1处添加一个元素
print(lst)
'''
print('------------切片 任意位置添加至少一个')
'''
lst=[10,20,30]
lst3=['a','b','c']
lst[1:]=lst3        # 在列表任意位置添加至少一个元素（切片）
print(lst)
'''
print('\n6--------------删除列表元素')
print('---------------remove删除一个元素')
'''
lst=[10,20,30,40,10,20]
lst.remove(10)          # 删除一个元素
print(lst)
lst.remove(20)          # 重复元素删除第一个
print(lst)
# lst.remove(50)        元素不存在，报错
# print(lst)
'''
print('---------------pop删除指定索引位置上的元素')
'''
lst1=[10,20,30,40,10,20]
lst1.pop(2)
print(lst1)
# lst1.pop(10)          指定索引不存在，报错
lst1.pop()
print(lst1)             # 不不指定索引删除最后一个元素
'''
print('---------------切片一次删除至少一个元素')
'''
lst2=[0,1,2,3]
new_lst2=lst2[0:3]      # 产生一个新列表
print(new_lst2)
lst2[1:3]=[]            # 空列表替代，不产生新列表，不改变空间地址
print(lst2)
'''
print('---------------clear 清空列表')
'''
lst3=[1,2,3,4]
lst3.clear()
print(lst3)
'''
print('---------------del 删除列表')
'''
lst4=[1,2,3,4]
del lst4
print(lst4)
'''
print('\n7----------------元素列表的修改操作')
'''
lst=[1,2,3,4]
lst[2]=100          # 一次修改一个值
print(lst)
lst[1:3]=[20,30,40]
print(lst)          # 切片赋予新值
'''
print('\n8----------------列表元素的排序操作')
'''
lst=[23,13,54,14,4,4324]
lst.sort()          # sort默认升序排序（对原列表进行排序）
print(lst)
lst.sort(reverse=True) # sort(reverse=True) 降序排序
print(lst)

lst1=[2,34,1,34,43,13,32]
new_lst1=sorted(lst1)   # 对新列表进行排序
print('原列表',lst1)
print(new_lst1)
new_lst2=sorted(lst1,reverse=True)  # 对新列表降序排序
print(new_lst2)
'''
print('\n9---------------列表生成式')
'''
lst=[i*i for i in range(1,10)]
print(lst)
lst1=[i*2 for i in range(1,6)]
print(lst1)
'''
